package com.hsurosy.domain.task.service;

import com.hsurosy.domain.task.model.entity.TaskEntity;

import java.util.List;

/**
 * @Author Hsu琛君珩
 * @Date 2024-11-15 14:05
 * @Description 消息任务服务接口
 * @Version: v1.0.0
 */
public interface ITaskService {

    /**
     * 查询待发送消息的任务列表
     *
     * @return 待发送消息任务的实体列表
     */
    List<TaskEntity> queryNoSendMessageTaskList();

    /**
     * 发送消息
     *
     * @param taskEntity 消息任务实体，包含用户ID、主题、消息ID等信息
     */
    void sendMessage(TaskEntity taskEntity);

    /**
     * 更新任务为发送成功状态
     *
     * @param userId 用户ID，用于标识任务所属用户
     * @param messageId 消息ID，用于唯一标识消息任务
     */
    void updateTaskSendMessageCompleted(String userId, String messageId);

    /**
     * 更新任务为发送失败状态
     *
     * @param userId 用户ID，用于标识任务所属用户
     * @param messageId 消息ID，用于唯一标识消息任务
     */
    void updateTaskSendMessageFail(String userId, String messageId);

}
